// MIR for `signy` after built

fn signy(_1: SignedAroundZero) -> i16 {
    debug x => _1;                       // in scope 0 at $DIR/enum_cast.rs:+0:10: +0:11
    let mut _0: i16;                     // return place in scope 0 at $DIR/enum_cast.rs:+0:34: +0:37
    let _2: SignedAroundZero;            // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:6
    let mut _3: i16;                     // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:6
    let mut _4: u16;                     // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
    let mut _5: bool;                    // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
    let mut _6: bool;                    // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
    let mut _7: bool;                    // in scope 0 at $DIR/enum_cast.rs:+1:5: +1:13

    bb0: {
        StorageLive(_2);                 // scope 0 at $DIR/enum_cast.rs:+1:5: +1:6
        _2 = move _1;                    // scope 0 at $DIR/enum_cast.rs:+1:5: +1:6
        _3 = discriminant(_2);           // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        _4 = _3 as u16 (IntToInt);       // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        _5 = Ge(_4, const 65534_u16);    // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        _6 = Le(_4, const 2_u16);        // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        _7 = BitOr(move _5, move _6);    // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        assume(move _7);                 // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        _0 = move _3 as i16 (IntToInt);  // scope 0 at $DIR/enum_cast.rs:+1:5: +1:13
        StorageDead(_2);                 // scope 0 at $DIR/enum_cast.rs:+1:12: +1:13
        return;                          // scope 0 at $DIR/enum_cast.rs:+2:2: +2:2
    }
}
